﻿using System;
using ZOIL.DataBackend;
using ZOIL.DataModel;
using ZOIL.Framework.Presentation;

namespace ZOIL.Library.Components
{
    public class LogoCard : DInformationObject, IRemoteUpdateable, Card
    {
        public LogoCard()
            : base()
        {

        }

        #region Properties

        public int? ProID
        {
            get
            {
                return (int?)GetValue("LogoCard:ProID");
            }
            set
            {
                SetValue("LogoCard:ProID", value);
                RaisePropertyChangedEvent("ProID");
            }
        }

        public int? CategoryID
        {
            get
            {
                return (int?)GetValue("LogoCard:CategoryID");
            }
            set
            {
                SetValue("LogoCard:CategoryID", value);
                RaisePropertyChangedEvent("CategoryID");
            }
        }

        public int? ZoomLevel1
        {
            get
            {
                return (int?)GetValue("LogoCard:ZoomLevel1");
            }
            set
            {
                SetValue("LogoCard:ZoomLevel1", value);
                RaisePropertyChangedEvent("ZoomLevel1");
            }
        }

        public int? ZoomLevel2
        {
            get
            {
                return (int?)GetValue("LogoCard:ZoomLevel2");
            }
            set
            {
                SetValue("LogoCard:ZoomLevel2", value);
                RaisePropertyChangedEvent("ZoomLevel2");
            }
        }

        public int? CardID
        {
            get
            {
                return (int?)GetValue("LogoCard:CardID");
            }
            set
            {
                SetValue("LogoCard:CardID", value);
                RaisePropertyChangedEvent("CardID");
            }
        }

        public int? FakeZoomLevelOut
        {
            get
            {
                return (int?)GetValue("LogoCard:FakeZoomLevelOut");
            }
            set
            {
                SetValue("LogoCard:FakeZoomLevelOut", value);
                RaisePropertyChangedEvent("FakeZoomLevelOut");
            }
        }

        public int? FakeZoomLevelIn
        {
            get
            {
                return (int?)GetValue("LogoCard:FakeZoomLevelIn");
            }
            set
            {
                SetValue("LogoCard:FakeZoomLevelIn", value);
                RaisePropertyChangedEvent("FakeZoomLevelIn");
            }
        }

        public int? Topic
        {
            get
            {
                return (int?)GetValue("LogoCard:Topic");
            }
            set
            {
                SetValue("LogoCard:Topic", value);
                RaisePropertyChangedEvent("Topic");
            }
        }

        public String LogoUrl
        {
            get
            {
                return GetValue<String>("LogoCard:LogoUrl");
            }
            set
            {
                SetValue("LogoCard:LogoUrl", value);
                RaisePropertyChangedEvent("LogoUrl");
            }
        }

        public String TextureUrl
        {
            get
            {
                return GetValue<String>("LogoCard:TextureUrl");
            }
            set
            {
                SetValue("LogoCard:TextureUrl", value);
                RaisePropertyChangedEvent("TextureUrl");
            }
        }

        public int? LeftID
        {
            get
            {
                return (int?)GetValue("LogoCard:LeftID");
            }
            set
            {
                SetValue("LogoCard:LeftID", value);
                RaisePropertyChangedEvent("LeftID");
            }
        }

        public int? RightID
        {
            get
            {
                return (int?)GetValue("LogoCard:RightID");
            }
            set
            {
                SetValue("LogoCard:RightID", value);
                RaisePropertyChangedEvent("RightID");
            }
        }

        public int? TopID
        {
            get
            {
                return (int?)GetValue("LogoCard:TopID");
            }
            set
            {
                SetValue("LogoCard:TopID", value);
                RaisePropertyChangedEvent("TopID");
            }
        }

        public int? BottomID
        {
            get
            {
                return (int?)GetValue("LogoCard:BottomID");
            }
            set
            {
                SetValue("LogoCard:BottomID", value);
                RaisePropertyChangedEvent("BottomID");
            }
        }

        #endregion Properties


        #region IRemoteUpdateable Members

        public void OnRemoteUpdate()
        {
            
        }

        #endregion

        #region Card Members


        private ZID _parent;

        public ZID ParentZID
        {
            get
            {
                return _parent;
            }
            set
            {
                _parent = value;
            }
        }



        private bool _onScreen;

        public bool onScreen
        {
            get
            {
                return _onScreen;
            }
            set
            {
                _onScreen = value;
            }
        }

        public new ZID ID
        {
            get
            {
                return base.ID;
            }
            set
            {
                base.ID = value;
            }
        }

        #endregion
    }
}